package van.planifolia.demo01;

/**
 * Created by Intellij IDEA<br>
 * 获取反射的三种方法
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/10/27 16:07
 */
public class GetReflex {
    public static void main(String[] args) throws ClassNotFoundException {
        // 直接使用类名.class的方法获取
        Class<Apple> appleClass = Apple.class;
        // 使用Class类中的静态方法.forName("要获取类的全限定名")
        Class<?> aClass = Class.forName("van.planifolia.demo01.Apple");
        // 使用Object类提供的方法 对象.getClass()来获取反射对象
        Apple apple = new Apple();
        Class<? extends Apple> aClass1 = apple.getClass();
        // 运行结果均为true，说明无论通过什么方式获取到的Class对象都是同一个，也说明了类只会被加载一次生成一个Class对象
        System.out.println(appleClass == aClass);
        System.out.println(aClass == aClass1);
    }
}
class Apple{

}
